perm filename DUMPEM.SAI[KID,KMC] blob
sn#122893 filedate 1974-11-15 generic text, type T, neo UTF8
BEGIN "DUMPEM"
INTEGER ARRAY HSTBUF[0:127];
INTEGER ARRAY DRCTRY[0:127];
INTEGER GAME,HR,MIN,SEC,LASTGAME,DENT,HENT,D,H,FLAG;
INTEGER DATE,OLDDATE,NORMAL,TIME,CHAR,IGNORE,NOCHARS;
INTEGER DATEMASK,TIMEMASK,DAY,MO,YR,NOBLKS;
STRING FILNAM,EFFECTIVE;
LABEL GETNAM;
DEFINE CRLF="13&10";
DEFINE HSTCHN="11";
DEFINE RPTCHN="10";
DEFINE FORMDATE="
START_CODE
MOVE '15,DENT;
AND '15,DATEMASK;
MOVEM '15,DATE;
END";
DEFINE FORMNORM="
QUICK_CODE
MOVE '15,DENT;
LSH '15,-35;
MOVEM '15,NORMAL;
END";
DEFINE SPLITENT="
START_CODE
MOVE '15,HENT;
MOVE '14,'15;
AND '14,TIMEMASK;
MOVEM '14,TIME;
MOVE '14,'15;
LSH '14,-24;
MOVE '13,'14;
ANDI '14,'17;
MOVEM '14,GAME;
LSH '13,-4;
ANDI '13,1;
MOVEM '13,IGNORE;
LSH '15,-29;
SUBI '15,'40;
MOVEM '15,CHAR;
END";
DATE←OLDDATE←0;
NORMAL←1;
DATEMASK←'007777777777;
TIMEMASK←'000077777777;
GETNAM: OUTSTR(CRLF & "TYPE THE CHILD'S NAME, THEN CARRIAGE RETURN: ");
FILNAM←INCHWL;
OPEN(HSTCHN,"DSK",15,0,0,0,0,0);
LOOKUP(HSTCHN,FILNAM&".HST[1,KMC]",FLAG);
IF FLAG THEN BEGIN
OUTSTR("FILE "&FILNAM&".HST [1,KMC] NOT FOUND");
RELEASE(HSTCHN);
GOTO GETNAM;
END;
OPEN(RPTCHN,"DSK",0,0,2,0,0,0);
ENTER(RPTCHN,FILNAM&".RPT",FLAG);
ARRYIN(HSTCHN,DRCTRY[0],128);
NOBLKS←DRCTRY[0] MOD '1000000;
FOR D←1 STEP 1 UNTIL NOBLKS DO BEGIN
DENT←DRCTRY[D];
FORMDATE;
IF DATE≠OLDDATE THEN BEGIN
IF OLDDATE≠0 THEN
OUT(RPTCHN,"END OF SESSION"&CRLF&CRLF&CRLF);
DAY←(DATE MOD 31)+1;
MO←((DATE DIV 31)MOD 12)+1;
YR←((DATE DIV 31)DIV 12)+64;
OUT(RPTCHN,"SESSION OF "&CVS(MO)&"/"&CVS(DAY)&"/"
&CVS(YR)&CRLF&CRLF);
OLDDATE←DATE;
END;
FORMNORM;
ARRYIN(HSTCHN,HSTBUF[0],128);
NOCHARS←HSTBUF[0] MOD '1000000;
FOR H←1 STEP 1 UNTIL NOCHARS DO BEGIN
HENT←HSTBUF[H];
SPLITENT;
TIME←TIME DIV 60;
SEC←TIME MOD 60;
MIN←(TIME DIV 60)MOD 60;
HR←TIME DIV 3600;
IF ¬IGNORE THEN EFFECTIVE←"EFFECTIVE"
ELSE EFFECTIVE←" ";
IF GAME ≠ LASTGAME THEN OUT(RPTCHN,CRLF);
OUT(RPTCHN,CVS(GAME)&" "&CVXSTR(CHAR)&" "&CVS(HR)
&":"&CVS(MIN)&":"&CVS(SEC)&" "&EFFECTIVE&CRLF);
LASTGAME←GAME;
END;
IF ¬NORMAL THEN OUT(RPTCHN,CRLF&"SYSTEM CRASHED"&CRLF);
END;
OUT(RPTCHN,"END OF LAST SESSION");
RELEASE(RPTCHN);
RELEASE(HSTCHN);
OUTSTR("REPORT IS ON "&FILNAM&".RPT"&CRLF);
END "DUMPEM";